package com.azxcrm.project.system.user.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.azxcrm.project.system.user.domain.UserRole;

/**
 * 用户表 数据层
 * 
 * @author Dustyone
 */
public interface IUserRoleDao
{
	/**
	 * 根据roleKey值查询用户信息
	 * @param roleKey
	 * @return
	 */
	public List<UserRole> selectUserByRoleKey(String roleKey);
	
	/**
	 * 根据roleKey值查询用户信息,封装入参
	 * @param roleKey
	 * @return
	 */
	public List<UserRole> selectUserByRoleKeyByParam(@Param("roleKey")String roleKey,@Param("deptId")Integer deptId);
	
    /**
     * 通过用户ID删除用户和角色关联
     * 
     * @param userId 用户ID
     * @return 结果
     */
    public int deleteUserRoleByUserId(Long userId);

    /**
     * 批量删除用户和角色关联
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserRole(Long[] ids);

    /**
     * 通过角色ID查询角色使用数量
     * 
     * @param roleId 角色ID
     * @return 结果
     */
    public int selectCountUserRoleByRoleId(Long roleId);
    
    /**
     * 新增用户角色信息
     * 
     * @param userRole 用户角色列表
     * @return 结果
     */
    public int insertUserRole(UserRole userRole);
    

    /**
     * 批量新增用户角色信息
     * 
     * @param userRoleList 用户角色列表
     * @return 结果
     */
    public int batchUserRole(List<UserRole> userRoleList);

}
